home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / shells / scsh-0.4 / scsh-0 / scsh-0.4.2 / env / init-defpackage.scm < prev    next >
Text File  |  1995-10-13  |  901b  |  24 lines

  1. ; Copyright (c) 1993, 1994 Richard Kelsey and Jonathan Rees.  See file COPYING.
  2.  
  3.  
  4. ; This file has to be loaded into the initial-image before any use of
  5. ; DEFINE-STRUCTURE.  Compare with alt/init-defpackage.scm.
  6.  
  7. ; The procedure given to DEFINE-REFLECTIVE-TOWER-MAKER is called when
  8. ; a DEFINE-STRCTURE form is evaluated.
  9.  
  10. (define-reflective-tower-maker
  11.   (let ((reflective-tower (*structure-ref syntactic 'reflective-tower))
  12.     (make-simple-interface (*structure-ref interfaces 'make-simple-interface))
  13.     (env (interaction-environment)))
  14.     (lambda (clauses id)
  15.       (if (null? clauses)
  16.       ;; (make-reflective-tower eval (list scheme) id)
  17.       (reflective-tower (package->environment env))
  18.       (delay (let ((p (eval `(a-package ((for-syntax ,id)) ,@clauses)
  19.                 env)))
  20.            (ensure-loaded (make-structure p
  21.                           (lambda () (make-simple-interface #f '()))
  22.                           'for-syntax))
  23.            (cons eval p)))))))
  24.